package cn.iocoder.yudao.module.cmt.controller.admin.activity.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - ActivitySignup新增/修改 Request VO")
@Data
public class ActivitySignupSaveReqVO {

    @Schema(description = "ID", example = "1")
    private Long id;

    @Schema(description = "社区ID", example = "1")
    private Long communityId;

    @Schema(description = "商户ID", example = "1")
    private Long merchantId;

    @Schema(description = "活动ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "活动ID不能为空")
    private Long activityId;

    @Schema(description = "会员ID", example = "1")
    private Long userId;

    @Schema(description = "参与人员ID(如为他人报名)", example = "1")
    private Long personId;

    @Schema(description = "报名时间")
    private LocalDateTime signupTime;

    @Schema(description = "审核状态：0待审核 1通过 2拒绝", example = "1")
    private Integer auditStatus;

    @Schema(description = "签到状态：0未签到 1已签到", example = "0")
    private Integer checkinStatus;

    @Schema(description = "签到时间")
    private LocalDateTime checkinTime;

    @Schema(description = "已发放积分", example = "10")
    private Integer pointAwarded;

    @Schema(description = "已发放经验", example = "5")
    private Integer experienceAwarded;

    @Schema(description = "取消状态：0正常 1已取消", example = "0")
    private Integer cancelStatus;

    @Schema(description = "取消时间")
    private LocalDateTime cancelTime;

    @Schema(description = "取消原因")
    private String cancelReason;

}
